﻿using System;

namespace MicaSetup.Natives;

public enum WindowMessage
{
    WM_NULL = 0x0000,
    WM_CREATE = 0x0001,
    WM_DESTROY = 0x0002,
    WM_MOVE = 0x0003,
    WM_SIZE = 0x0005,
    WM_ACTIVATE = 0x0006,
    WM_SETFOCUS = 0x0007,
    WM_KILLFOCUS = 0x0008,
    WM_ENABLE = 0x000A,
    WM_SETREDRAW = 0x000B,
    WM_SETTEXT = 0x000C,
    WM_GETTEXT = 0x000D,
    WM_GETTEXTLENGTH = 0x000E,
    WM_PAINT = 0x000F,
    WM_CLOSE = 0x0010,
    WM_QUERYENDSESSION = 0x0011,
    WM_QUIT = 0x0012,
    WM_QUERYOPEN = 0x0013,
    WM_ERASEBKGND = 0x0014,
    WM_SYSCOLORCHANGE = 0x0015,
    WM_ENDSESSION = 0x0016,
    WM_SHOWWINDOW = 0x0018,
    WM_CTLCOLOR = 0x0019,
    WM_WININICHANGE = 0x001A,
    WM_SETTINGCHANGE = 0x001A,
    WM_DEVMODECHANGE = 0x001B,
    WM_ACTIVATEAPP = 0x001C,
    WM_FONTCHANGE = 0x001D,
    WM_TIMECHANGE = 0x001E,
    WM_CANCELMODE = 0x001F,
    WM_SETCURSOR = 0x0020,
    WM_MOUSEACTIVATE = 0x0021,
    WM_CHILDACTIVATE = 0x0022,
    WM_QUEUESYNC = 0x0023,
    WM_GETMINMAXINFO = 0x0024,
    WM_PAINTICON = 0x0026,
    WM_ICONERASEBKGND = 0x0027,
    WM_NEXTDLGCTL = 0x0028,
    WM_SPOOLERSTATUS = 0x002A,
    WM_DRAWITEM = 0x002B,
    WM_MEASUREITEM = 0x002C,
    WM_DELETEITEM = 0x002D,
    WM_VKEYTOITEM = 0x002E,
    WM_CHARTOITEM = 0x002F,
    WM_SETFONT = 0x0030,
    WM_GETFONT = 0x0031,
    WM_SETHOTKEY = 0x0032,
    WM_GETHOTKEY = 0x0033,
    WM_QUERYDRAGICON = 0x0037,
    WM_COMPAREITEM = 0x0039,
    WM_GETOBJECT = 0x003D,
    WM_COMPACTING = 0x0041,
    WM_COMMNOTIFY = 0x0044,
    WM_WINDOWPOSCHANGING = 0x0046,
    WM_WINDOWPOSCHANGED = 0x0047,
    WM_POWER = 0x0048,
    WM_COPYDATA = 0x004A,
    WM_CANCELJOURNAL = 0x004B,
    WM_NOTIFY = 0x004E,
    WM_INPUTLANGCHANGEREQUEST = 0x0050,
    WM_INPUTLANGCHANGE = 0x0051,
    WM_TCARD = 0x0052,
    WM_HELP = 0x0053,
    WM_USERCHANGED = 0x0054,
    WM_NOTIFYFORMAT = 0x0055,
    WM_CONTEXTMENU = 0x007B,
    WM_STYLECHANGING = 0x007C,
    WM_STYLECHANGED = 0x007D,
    WM_DISPLAYCHANGE = 0x007E,
    WM_GETICON = 0x007F,
    WM_SETICON = 0x0080,
    WM_NCCREATE = 0x0081,
    WM_NCDESTROY = 0x0082,
    WM_NCCALCSIZE = 0x0083,
    WM_NCHITTEST = 0x0084,
    WM_NCPAINT = 0x0085,
    WM_NCACTIVATE = 0x0086,
    WM_GETDLGCODE = 0x0087,
    WM_SYNCPAINT = 0x0088,
    WM_NCMOUSEMOVE = 0x00A0,
    WM_NCLBUTTONDOWN = 0x00A1,
    WM_NCLBUTTONUP = 0x00A2,
    WM_NCLBUTTONDBLCLK = 0x00A3,
    WM_NCRBUTTONDOWN = 0x00A4,
    WM_NCRBUTTONUP = 0x00A5,
    WM_NCRBUTTONDBLCLK = 0x00A6,
    WM_NCMBUTTONDOWN = 0x00A7,
    WM_NCMBUTTONUP = 0x00A8,
    WM_NCMBUTTONDBLCLK = 0x00A9,
    WM_KEYDOWN = 0x0100,
    WM_KEYUP = 0x0101,
    WM_CHAR = 0x0102,
    WM_DEADCHAR = 0x0103,
    WM_SYSKEYDOWN = 0x0104,
    WM_SYSKEYUP = 0x0105,
    WM_SYSCHAR = 0x0106,
    WM_SYSDEADCHAR = 0x0107,
    WM_KEYLAST = 0x0108,
    WM_IME_STARTCOMPOSITION = 0x010D,
    WM_IME_ENDCOMPOSITION = 0x010E,
    WM_IME_COMPOSITION = 0x010F,
    WM_IME_KEYLAST = 0x010F,
    WM_INITDIALOG = 0x0110,
    WM_COMMAND = 0x0111,
    WM_SYSCOMMAND = 0x0112,
    WM_TIMER = 0x0113,
    WM_HSCROLL = 0x0114,
    WM_VSCROLL = 0x0115,
    WM_INITMENU = 0x0116,
    WM_INITMENUPOPUP = 0x0117,
    WM_MENUSELECT = 0x011F,
    WM_MENUCHAR = 0x0120,
    WM_ENTERIDLE = 0x0121,
    WM_MENURBUTTONUP = 0x0122,
    WM_MENUDRAG = 0x0123,
    WM_MENUGETOBJECT = 0x0124,
    WM_UNINITMENUPOPUP = 0x0125,
    WM_MENUCOMMAND = 0x0126,
    WM_CTLCOLORWinMsgBOX = 0x0132,
    WM_CTLCOLOREDIT = 0x0133,
    WM_CTLCOLORLISTBOX = 0x0134,
    WM_CTLCOLORBTN = 0x0135,
    WM_CTLCOLORDLG = 0x0136,
    WM_CTLCOLORSCROLLBAR = 0x0137,
    WM_CTLCOLORSTATIC = 0x0138,
    WM_MOUSEMOVE = 0x0200,
    WM_LBUTTONDOWN = 0x0201,
    WM_LBUTTONUP = 0x0202,
    WM_LBUTTONDBLCLK = 0x0203,
    WM_RBUTTONDOWN = 0x0204,
    WM_RBUTTONUP = 0x0205,
    WM_RBUTTONDBLCLK = 0x0206,
    WM_MBUTTONDOWN = 0x0207,
    WM_MBUTTONUP = 0x0208,
    WM_MBUTTONDBLCLK = 0x0209,
    WM_MOUSEWHEEL = 0x020A,
    WM_PARENTNOTIFY = 0x0210,
    WM_ENTERMENULOOP = 0x0211,
    WM_EXITMENULOOP = 0x0212,
    WM_NEXTMENU = 0x0213,
    WM_SIZING = 0x0214,
    WM_CAPTURECHANGED = 0x0215,
    WM_MOVING = 0x0216,
    WM_DEVICECHANGE = 0x0219,
    WM_MDICREATE = 0x0220,
    WM_MDIDESTROY = 0x0221,
    WM_MDIACTIVATE = 0x0222,
    WM_MDIRESTORE = 0x0223,
    WM_MDINEXT = 0x0224,
    WM_MDIMAXIMIZE = 0x0225,
    WM_MDITILE = 0x0226,
    WM_MDICASCADE = 0x0227,
    WM_MDIICONARRANGE = 0x0228,
    WM_MDIGETACTIVE = 0x0229,
    WM_MDISETMENU = 0x0230,
    WM_ENTERSIZEMOVE = 0x0231,
    WM_EXITSIZEMOVE = 0x0232,
    WM_DROPFILES = 0x0233,
    WM_MDIREFRESHMENU = 0x0234,
    WM_IME_SETCONTEXT = 0x0281,
    WM_IME_NOTIFY = 0x0282,
    WM_IME_CONTROL = 0x0283,
    WM_IME_COMPOSITIONFULL = 0x0284,
    WM_IME_SELECT = 0x0285,
    WM_IME_CHAR = 0x0286,
    WM_IME_REQUEST = 0x0288,
    WM_IME_KEYDOWN = 0x0290,
    WM_IME_KEYUP = 0x0291,
    WM_MOUSEHOVER = 0x02A1,
    WM_MOUSELEAVE = 0x02A3,
    WM_DPICHANGED = 0x02E0,
    WM_CUT = 0x0300,
    WM_COPY = 0x0301,
    WM_PASTE = 0x0302,
    WM_CLEAR = 0x0303,
    WM_UNDO = 0x0304,
    WM_RENDERFORMAT = 0x0305,
    WM_RENDERALLFORMATS = 0x0306,
    WM_DESTROYCLIPBOARD = 0x0307,
    WM_DRAWCLIPBOARD = 0x0308,
    WM_PAINTCLIPBOARD = 0x0309,
    WM_VSCROLLCLIPBOARD = 0x030A,
    WM_SIZECLIPBOARD = 0x030B,
    WM_ASKCBFORMATNAME = 0x030C,
    WM_CHANGECBCHAIN = 0x030D,
    WM_HSCROLLCLIPBOARD = 0x030E,
    WM_QUERYNEWPALETTE = 0x030F,
    WM_PALETTEISCHANGING = 0x0310,
    WM_PALETTECHANGED = 0x0311,
    WM_HOTKEY = 0x0312,
    WM_PRINT = 0x0317,
    WM_PRINTCLIENT = 0x0318,
    WM_HANDHELDFIRST = 0x0358,
    WM_HANDHELDLAST = 0x035F,
    WM_AFXFIRST = 0x0360,
    WM_AFXLAST = 0x037F,
    WM_PENWINFIRST = 0x0380,
    WM_PENWINLAST = 0x038F,
    WM_APP = 0x8000,
    WM_USER = 0x0400,
    WM_REFLECT = WM_USER + 0x1c00,
}

public enum HitTestValues
{
    HTERROR = -2,
    HTTRANSPARENT = -1,
    HTNOWHERE = 0,
    HTCLIENT = 1,
    HTCAPTION = 2,
    HTSYSMENU = 3,
    HTGROWBOX = 4,
    HTSIZE = HTGROWBOX,
    HTMENU = 5,
    HTHSCROLL = 6,
    HTVSCROLL = 7,
    HTMINBUTTON = 8,
    HTMAXBUTTON = 9,
    HTLEFT = 10,
    HTRIGHT = 11,
    HTTOP = 12,
    HTTOPLEFT = 13,
    HTTOPRIGHT = 14,
    HTBOTTOM = 15,
    HTBOTTOMLEFT = 16,
    HTBOTTOMRIGHT = 17,
    HTBORDER = 18,
    HTREDUCE = HTMINBUTTON,
    HTZOOM = HTMAXBUTTON,
    HTSIZEFIRST = HTLEFT,
    HTSIZELAST = HTBOTTOMRIGHT,
    HTOBJECT = 19,
    HTCLOSE = 20,
    HTHELP = 21,
}

public enum WindowLongFlags
{
    GWL_EXSTYLE = -20,
    GWL_HINSTANCE = -6,
    GWLP_HINSTANCE = -6,
    GWL_HWNDPARENT = -8,
    GWL_ID = -12,
    GWLP_ID = -12,
    GWL_STYLE = -16,
    GWL_USERDATA = -21,
    GWLP_USERDATA = -21,
    GWL_WNDPROC = -4,
    GWLP_WNDPROC = -4,
    DWLP_USER = 8,
    DWLP_MSGRESULT = 0,
    DWLP_DLGPROC = 4,
    DWL_USER = 8,
    DWL_MSGRESULT = 0,
    DWL_DLGPROC = 4,
}

[Flags]
public enum WindowStyles : uint
{
    WS_BORDER = 0x800000u,
    WS_CAPTION = 0xC00000u,
    WS_CHILD = 0x40000000u,
    WS_CLIPCHILDREN = 0x2000000u,
    WS_CLIPSIBLINGS = 0x4000000u,
    WS_DISABLED = 0x8000000u,
    WS_DLGFRAME = 0x400000u,
    WS_GROUP = 0x20000u,
    WS_HSCROLL = 0x100000u,
    WS_MAXIMIZE = 0x1000000u,
    WS_MAXIMIZEBOX = 0x10000u,
    WS_MINIMIZE = 0x20000000u,
    WS_MINIMIZEBOX = 0x20000u,
    WS_OVERLAPPED = 0x0u,
    WS_OVERLAPPEDWINDOW = 0xCF0000u,
    WS_POPUP = 0x80000000u,
    WS_POPUPWINDOW = 0x80880000u,
    WS_THICKFRAME = 0x40000u,
    WS_SYSMENU = 0x80000u,
    WS_TABSTOP = 0x10000u,
    WS_VISIBLE = 0x10000000u,
    WS_VSCROLL = 0x200000u,
    WS_TILED = 0x0u,
    WS_ICONIC = 0x20000000u,
    WS_SIZEBOX = 0x40000u,
    WS_TILEDWINDOW = 0xCF0000u,
    WS_CHILDWINDOW = 0x40000000u,
}

public enum DWMWINDOWATTRIBUTE
{
    DWMWA_NCRENDERING_ENABLED = 1,
    DWMWA_NCRENDERING_POLICY,
    DWMWA_TRANSITIONS_FORCEDISABLED,
    DWMWA_ALLOW_NCPAINT,
    DWMWA_CAPTION_BUTTON_BOUNDS,
    DWMWA_NONCLIENT_RTL_LAYOUT,
    DWMWA_FORCE_ICONIC_REPRESENTATION,
    DWMWA_FLIP3D_POLICY,
    DWMWA_EXTENDED_FRAME_BOUNDS,
    DWMWA_HAS_ICONIC_BITMAP,
    DWMWA_DISALLOW_PEEK,
    DWMWA_EXCLUDED_FROM_PEEK,
    DWMWA_CLOAK,
    DWMWA_CLOAKED,
    DWMWA_FREEZE_REPRESENTATION,
    DWMWA_USE_HOSTBACKDROPBRUSH,
    DWMWA_USE_IMMERSIVE_DARK_MODE = 20,
    DWMWA_WINDOW_CORNER_PREFERENCE = 33,
    DWMWA_BORDER_COLOR,
    DWMWA_CAPTION_COLOR,
    DWMWA_TEXT_COLOR,
    DWMWA_VISIBLE_FRAME_BORDER_THICKNESS,
    DWMWA_SYSTEMBACKDROP_TYPE,
    DWMWA_MICA_EFFECT = 1029,
}

public enum PROCESS_DPI_AWARENESS
{
    PROCESS_DPI_UNAWARE,
    PROCESS_SYSTEM_DPI_AWARE,
    PROCESS_PER_MONITOR_DPI_AWARE,
}

public enum MonitorFlags
{
    MONITOR_DEFAULTTONULL,
    MONITOR_DEFAULTTOPRIMARY,
    MONITOR_DEFAULTTONEAREST,
}

public enum MONITOR_DPI_TYPE
{
    MDT_EFFECTIVE_DPI = 0,
    MDT_ANGULAR_DPI,
    MDT_RAW_DPI,
    MDT_DEFAULT = MDT_EFFECTIVE_DPI,
}

[Flags]
public enum SetWindowPosFlags : uint
{
    SWP_ASYNCWINDOWPOS = 0x4000,
    SWP_DEFERERASE = 0x2000,
    SWP_DRAWFRAME = 0x0020,
    SWP_FRAMECHANGED = 0x0020,
    SWP_HIDEWINDOW = 0x0080,
    SWP_NOACTIVATE = 0x0010,
    SWP_NOCOPYBITS = 0x0100,
    SWP_NOMOVE = 0x0002,
    SWP_NOOWNERZORDER = 0x0200,
    SWP_NOREDRAW = 0x0008,
    SWP_NOREPOSITION = 0x0200,
    SWP_NOSENDCHANGING = 0x0400,
    SWP_NOSIZE = 0x0001,
    SWP_NOZORDER = 0x0004,
    SWP_SHOWWINDOW = 0x0040,
}

[Flags]
public enum MoveFileFlags
{
    MOVEFILE_REPLACE_EXISTING = 0x1,
    MOVEFILE_COPY_ALLOWED = 0x2,
    MOVEFILE_DELAY_UNTIL_REBOOT = 0x4,
    MOVEFILE_WRITE_THROUGH = 0x8,
    MOVEFILE_CREATE_HARDLINK = 0x10,
    MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20,
}

public enum DeviceCap
{
    DRIVERVERSION = 0,
    TECHNOLOGY = 2,
    HORZSIZE = 4,
    VERTSIZE = 6,
    HORZRES = 8,
    VERTRES = 10,
    BITSPIXEL = 12,
    PLANES = 14,
    NUMBRUSHES = 16,
    NUMPENS = 18,
    NUMMARKERS = 20,
    NUMFONTS = 22,
    NUMCOLORS = 24,
    PDEVICESIZE = 26,
    CURVECAPS = 28,
    LINECAPS = 30,
    POLYGONALCAPS = 32,
    TEXTCAPS = 34,
    CLIPCAPS = 36,
    RASTERCAPS = 38,
    ASPECTX = 40,
    ASPECTY = 42,
    ASPECTXY = 44,
    SHADEBLENDCAPS = 45,
    LOGPIXELSX = 88,
    LOGPIXELSY = 90,
    SIZEPALETTE = 104,
    NUMRESERVED = 106,
    COLORRES = 108,
    PHYSICALWIDTH = 110,
    PHYSICALHEIGHT = 111,
    PHYSICALOFFSETX = 112,
    PHYSICALOFFSETY = 113,
    SCALINGFACTORX = 114,
    SCALINGFACTORY = 115,
    VREFRESH = 116,
    DESKTOPVERTRES = 117,
    DESKTOPHORZRES = 118,
    BLTALIGNMENT = 119,
}

public enum MonitorOptions : uint
{
    MONITOR_DEFAULTTONULL = 0x00000000,
    MONITOR_DEFAULTTOPRIMARY = 0x00000001,
    MONITOR_DEFAULTTONEAREST = 0x00000002,
}

public enum MonitorDpiType
{
    MDT_Effective_DPI = 0,
    MDT_Angular_DPI = 1,
    MDT_Raw_DPI = 2,
}

public enum SHARD
{
    SHARD_APPIDINFO = 4,
    SHARD_APPIDINFOIDLIST = 5,
    SHARD_APPIDINFOLINK = 7,
    SHARD_LINK = 6,
    SHARD_PATHA = 2,
    SHARD_PATHW = 3,
    SHARD_PIDL = 1,
    SHARD_SHELLITEM = 8,
}

[Flags]
public enum SHCNE : uint
{
    SHCNE_RENAMEITEM = 0x00000001,
    SHCNE_CREATE = 0x00000002,
    SHCNE_DELETE = 0x00000004,
    SHCNE_MKDIR = 0x00000008,
    SHCNE_RMDIR = 0x00000010,
    SHCNE_MEDIAINSERTED = 0x00000020,
    SHCNE_MEDIAREMOVED = 0x00000040,
    SHCNE_DRIVEREMOVED = 0x00000080,
    SHCNE_DRIVEADD = 0x00000100,
    SHCNE_NETSHARE = 0x00000200,
    SHCNE_NETUNSHARE = 0x00000400,
    SHCNE_ATTRIBUTES = 0x00000800,
    SHCNE_UPDATEDIR = 0x00001000,
    SHCNE_UPDATEITEM = 0x00002000,
    SHCNE_SERVERDISCONNECT = 0x00004000,
    SHCNE_UPDATEIMAGE = 0x00008000,
    SHCNE_DRIVEADDGUI = 0x00010000,
    SHCNE_RENAMEFOLDER = 0x00020000,
    SHCNE_FREESPACE = 0x00040000,
    SHCNE_EXTENDED_EVENT = 0x04000000,
    SHCNE_ASSOCCHANGED = 0x08000000,
    SHCNE_DISKEVENTS = 0x0002381F,
    SHCNE_GLOBALEVENTS = 0x0C0581E0,
    SHCNE_ALLEVENTS = 0x7FFFFFFF,
    SHCNE_INTERRUPT = 0x80000000,
}

[Flags]
public enum SHCNF : uint
{
    SHCNF_IDLIST = 0x0000,
    SHCNF_PATHA = 0x0001,
    SHCNF_PRINTERA = 0x0002,
    SHCNF_DWORD = 0x0003,
    SHCNF_PATHW = 0x0005,
    SHCNF_PRINTERW = 0x0006,
    SHCNF_TYPE = 0x00FF,
    SHCNF_FLUSH = 0x1000,
    SHCNF_FLUSHNOWAIT = 0x3000,
    SHCNF_NOTIFYRECURSIVE = 0x10000,
}

public enum PrimaryLanguageID : ushort
{
    LANG_NEUTRAL = 0x00,
    LANG_INVARIANT = 0x7f,
    LANG_AFRIKAANS = 0x36,
    LANG_ALBANIAN = 0x1c,
    LANG_ALSATIAN = 0x84,
    LANG_AMHARIC = 0x5e,
    LANG_ARABIC = 0x01,
    LANG_ARMENIAN = 0x2b,
    LANG_ASSAMESE = 0x4d,
    LANG_AZERI = 0x2c,
    LANG_AZERBAIJANI = 0x2c,
    LANG_BANGLA = 0x45,
    LANG_BASHKIR = 0x6d,
    LANG_BASQUE = 0x2d,
    LANG_BELARUSIAN = 0x23,
    LANG_BENGALI = 0x45,
    LANG_BRETON = 0x7e,
    LANG_BOSNIAN = 0x1a,
    LANG_BOSNIAN_NEUTRAL = 0x781a,
    LANG_BULGARIAN = 0x02,
    LANG_CATALAN = 0x03,
    LANG_CHEROKEE = 0x5c,
    LANG_CHINESE = 0x04,
    LANG_CHINESE_SIMPLIFIED = 0x04,
    LANG_CHINESE_TRADITIONAL = 0x7c04,
    LANG_CORSICAN = 0x83,
    LANG_CROATIAN = 0x1a,
    LANG_CZECH = 0x05,
    LANG_DANISH = 0x06,
    LANG_DARI = 0x8c,
    LANG_DIVEHI = 0x65,
    LANG_DUTCH = 0x13,
    LANG_ENGLISH = 0x09,
    LANG_ESTONIAN = 0x25,
    LANG_FAEROESE = 0x38,
    LANG_FILIPINO = 0x64,
    LANG_FINNISH = 0x0b,
    LANG_FRENCH = 0x0c,
    LANG_FRISIAN = 0x62,
    LANG_FULAH = 0x67,
    LANG_GALICIAN = 0x56,
    LANG_GEORGIAN = 0x37,
    LANG_GERMAN = 0x07,
    LANG_GREEK = 0x08,
    LANG_GREENLANDIC = 0x6f,
    LANG_GUJARATI = 0x47,
    LANG_HAUSA = 0x68,
    LANG_HAWAIIAN = 0x75,
    LANG_HEBREW = 0x0d,
    LANG_HINDI = 0x39,
    LANG_HUNGARIAN = 0x0e,
    LANG_ICELANDIC = 0x0f,
    LANG_IGBO = 0x70,
    LANG_INDONESIAN = 0x21,
    LANG_INUKTITUT = 0x5d,
    LANG_IRISH = 0x3c,
    LANG_ITALIAN = 0x10,
    LANG_JAPANESE = 0x11,
    LANG_KANNADA = 0x4b,
    LANG_KASHMIRI = 0x60,
    LANG_KAZAK = 0x3f,
    LANG_KHMER = 0x53,
    LANG_KICHE = 0x86,
    LANG_KINYARWANDA = 0x87,
    LANG_KONKANI = 0x57,
    LANG_KOREAN = 0x12,
    LANG_KYRGYZ = 0x40,
    LANG_LAO = 0x54,
    LANG_LATVIAN = 0x26,
    LANG_LITHUANIAN = 0x27,
    LANG_LOWER_SORBIAN = 0x2e,
    LANG_LUXEMBOURGISH = 0x6e,
    LANG_MALAY = 0x3e,
    LANG_MALAYALAM = 0x4c,
    LANG_MALTESE = 0x3a,
    LANG_MANIPURI = 0x58,
    LANG_MAORI = 0x81,
    LANG_MAPUDUNGUN = 0x7a,
    LANG_MARATHI = 0x4e,
    LANG_MOHAWK = 0x7c,
    LANG_MONGOLIAN = 0x50,
    LANG_NEPALI = 0x61,
    LANG_NORWEGIAN = 0x14,
    LANG_OCCITAN = 0x82,
    LANG_ODIA = 0x48,
    LANG_ORIYA = 0x48,
    LANG_PASHTO = 0x63,
    LANG_PERSIAN = 0x29,
    LANG_POLISH = 0x15,
    LANG_PORTUGUESE = 0x16,
    LANG_PULAR = 0x67,
    LANG_PUNJABI = 0x46,
    LANG_QUECHUA = 0x6b,
    LANG_ROMANIAN = 0x18,
    LANG_ROMANSH = 0x17,
    LANG_RUSSIAN = 0x19,
    LANG_SAKHA = 0x85,
    LANG_SAMI = 0x3b,
    LANG_SANSKRIT = 0x4f,
    LANG_SCOTTISH_GAELIC = 0x91,
    LANG_SERBIAN = 0x1a,
    LANG_SERBIAN_NEUTRAL = 0x7c1a,
    LANG_SINDHI = 0x59,
    LANG_SINHALESE = 0x5b,
    LANG_SLOVAK = 0x1b,
    LANG_SLOVENIAN = 0x24,
    LANG_SOTHO = 0x6c,
    LANG_SPANISH = 0x0a,
    LANG_SWAHILI = 0x41,
    LANG_SWEDISH = 0x1d,
    LANG_SYRIAC = 0x5a,
    LANG_TAJIK = 0x28,
    LANG_TAMAZIGHT = 0x5f,
    LANG_TAMIL = 0x49,
    LANG_TATAR = 0x44,
    LANG_TELUGU = 0x4a,
    LANG_THAI = 0x1e,
    LANG_TIBETAN = 0x51,
    LANG_TIGRIGNA = 0x73,
    LANG_TIGRINYA = 0x73,
    LANG_TSWANA = 0x32,
    LANG_TURKISH = 0x1f,
    LANG_TURKMEN = 0x42,
    LANG_UIGHUR = 0x80,
    LANG_UKRAINIAN = 0x22,
    LANG_UPPER_SORBIAN = 0x2e,
    LANG_URDU = 0x20,
    LANG_UZBEK = 0x43,
    LANG_VALENCIAN = 0x03,
    LANG_VIETNAMESE = 0x2a,
    LANG_WELSH = 0x52,
    LANG_WOLOF = 0x88,
    LANG_XHOSA = 0x34,
    LANG_YAKUT = 0x85,
    LANG_YI = 0x78,
    LANG_YORUBA = 0x6a,
    LANG_ZULU = 0x35,
}

public enum SublanguageID : ushort
{
    SUBLANG_DEFAULT = 0x01,
    SUBLANG_SYS_DEFAULT = 0x02,
    SUBLANG_CUSTOM_DEFAULT = 0x03,
    SUBLANG_CUSTOM_UNSPECIFIED = 0x04,
    SUBLANG_UI_CUSTOM_DEFAULT = 0x05,
    SUBLANG_AFRIKAANS_SOUTH_AFRICA = 0x01,
    SUBLANG_ALBANIAN_ALBANIA = 0x01,
    SUBLANG_ALSATIAN_FRANCE = 0x01,
    SUBLANG_AMHARIC_ETHIOPIA = 0x01,
    SUBLANG_ARABIC_SAUDI_ARABIA = 0x01,
    SUBLANG_ARABIC_IRAQ = 0x02,
    SUBLANG_ARABIC_EGYPT = 0x03,
    SUBLANG_ARABIC_LIBYA = 0x04,
    SUBLANG_ARABIC_ALGERIA = 0x05,
    SUBLANG_ARABIC_MOROCCO = 0x06,
    SUBLANG_ARABIC_TUNISIA = 0x07,
    SUBLANG_ARABIC_OMAN = 0x08,
    SUBLANG_ARABIC_YEMEN = 0x09,
    SUBLANG_ARABIC_SYRIA = 0x0a,
    SUBLANG_ARABIC_JORDAN = 0x0b,
    SUBLANG_ARABIC_LEBANON = 0x0c,
    SUBLANG_ARABIC_KUWAIT = 0x0d,
    SUBLANG_ARABIC_UAE = 0x0e,
    SUBLANG_ARABIC_BAHRAIN = 0x0f,
    SUBLANG_ARABIC_QATAR = 0x10,
    SUBLANG_ARMENIAN_ARMENIA = 0x01,
    SUBLANG_ASSAMESE_INDIA = 0x01,
    SUBLANG_AZERI_LATIN = 0x01,
    SUBLANG_AZERI_CYRILLIC = 0x02,
    SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN = 0x01,
    SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC = 0x02,
    SUBLANG_BANGLA_INDIA = 0x01,
    SUBLANG_BANGLA_BANGLADESH = 0x02,
    SUBLANG_BASHKIR_RUSSIA = 0x01,
    SUBLANG_BASQUE_BASQUE = 0x01,
    SUBLANG_BELARUSIAN_BELARUS = 0x01,
    SUBLANG_BENGALI_INDIA = 0x01,
    SUBLANG_BENGALI_BANGLADESH = 0x02,
    SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN = 0x05,
    SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 0x08,
    SUBLANG_BRETON_FRANCE = 0x01,
    SUBLANG_BULGARIAN_BULGARIA = 0x01,
    SUBLANG_CATALAN_CATALAN = 0x01,
    SUBLANG_CHEROKEE_CHEROKEE = 0x01,
    SUBLANG_CHINESE_TRADITIONAL = 0x01,
    SUBLANG_CHINESE_SIMPLIFIED = 0x02,
    SUBLANG_CHINESE_HONGKONG = 0x03,
    SUBLANG_CHINESE_SINGAPORE = 0x04,
    SUBLANG_CHINESE_MACAU = 0x05,
    SUBLANG_CORSICAN_FRANCE = 0x01,
    SUBLANG_CZECH_CZECH_REPUBLIC = 0x01,
    SUBLANG_CROATIAN_CROATIA = 0x01,
    SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN = 0x04,
    SUBLANG_DANISH_DENMARK = 0x01,
    SUBLANG_DARI_AFGHANISTAN = 0x01,
    SUBLANG_DIVEHI_MALDIVES = 0x01,
    SUBLANG_DUTCH = 0x01,
    SUBLANG_DUTCH_BELGIAN = 0x02,
    SUBLANG_ENGLISH_US = 0x01,
    SUBLANG_ENGLISH_UK = 0x02,
    SUBLANG_ENGLISH_AUS = 0x03,
    SUBLANG_ENGLISH_CAN = 0x04,
    SUBLANG_ENGLISH_NZ = 0x05,
    SUBLANG_ENGLISH_EIRE = 0x06,
    SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07,
    SUBLANG_ENGLISH_JAMAICA = 0x08,
    SUBLANG_ENGLISH_CARIBBEAN = 0x09,
    SUBLANG_ENGLISH_BELIZE = 0x0a,
    SUBLANG_ENGLISH_TRINIDAD = 0x0b,
    SUBLANG_ENGLISH_ZIMBABWE = 0x0c,
    SUBLANG_ENGLISH_PHILIPPINES = 0x0d,
    SUBLANG_ENGLISH_INDIA = 0x10,
    SUBLANG_ENGLISH_MALAYSIA = 0x11,
    SUBLANG_ENGLISH_SINGAPORE = 0x12,
    SUBLANG_ESTONIAN_ESTONIA = 0x01,
    SUBLANG_FAEROESE_FAROE_ISLANDS = 0x01,
    SUBLANG_FILIPINO_PHILIPPINES = 0x01,
    SUBLANG_FINNISH_FINLAND = 0x01,
    SUBLANG_FRENCH = 0x01,
    SUBLANG_FRENCH_BELGIAN = 0x02,
    SUBLANG_FRENCH_CANADIAN = 0x03,
    SUBLANG_FRENCH_SWISS = 0x04,
    SUBLANG_FRENCH_LUXEMBOURG = 0x05,
    SUBLANG_FRENCH_MONACO = 0x06,
    SUBLANG_FRISIAN_NETHERLANDS = 0x01,
    SUBLANG_FULAH_SENEGAL = 0x02,
    SUBLANG_GALICIAN_GALICIAN = 0x01,
    SUBLANG_GEORGIAN_GEORGIA = 0x01,
    SUBLANG_GERMAN = 0x01,
    SUBLANG_GERMAN_SWISS = 0x02,
    SUBLANG_GERMAN_AUSTRIAN = 0x03,
    SUBLANG_GERMAN_LUXEMBOURG = 0x04,
    SUBLANG_GERMAN_LIECHTENSTEIN = 0x05,
    SUBLANG_GREEK_GREECE = 0x01,
    SUBLANG_GREENLANDIC_GREENLAND = 0x01,
    SUBLANG_GUJARATI_INDIA = 0x01,
    SUBLANG_HAUSA_NIGERIA_LATIN = 0x01,
    SUBLANG_HAWAIIAN_US = 0x01,
    SUBLANG_HEBREW_ISRAEL = 0x01,
    SUBLANG_HINDI_INDIA = 0x01,
    SUBLANG_HUNGARIAN_HUNGARY = 0x01,
    SUBLANG_ICELANDIC_ICELAND = 0x01,
    SUBLANG_IGBO_NIGERIA = 0x01,
    SUBLANG_INDONESIAN_INDONESIA = 0x01,
    SUBLANG_INUKTITUT_CANADA = 0x01,
    SUBLANG_INUKTITUT_CANADA_LATIN = 0x02,
    SUBLANG_IRISH_IRELAND = 0x02,
    SUBLANG_ITALIAN = 0x01,
    SUBLANG_ITALIAN_SWISS = 0x02,
    SUBLANG_JAPANESE_JAPAN = 0x01,
    SUBLANG_KANNADA_INDIA = 0x01,
    SUBLANG_KAZAK_KAZAKHSTAN = 0x01,
    SUBLANG_KHMER_CAMBODIA = 0x01,
    SUBLANG_KICHE_GUATEMALA = 0x01,
    SUBLANG_KINYARWANDA_RWANDA = 0x01,
    SUBLANG_KONKANI_INDIA = 0x01,
    SUBLANG_KOREAN = 0x01,
    SUBLANG_KYRGYZ_KYRGYZSTAN = 0x01,
    SUBLANG_LAO_LAO = 0x01,
    SUBLANG_LATVIAN_LATVIA = 0x01,
    SUBLANG_LITHUANIAN = 0x01,
    SUBLANG_LOWER_SORBIAN_GERMANY = 0x02,
    SUBLANG_LUXEMBOURGISH_LUXEMBOURG = 0x01,
    SUBLANG_MALAY_MALAYSIA = 0x01,
    SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02,
    SUBLANG_MALAYALAM_INDIA = 0x01,
    SUBLANG_MALTESE_MALTA = 0x01,
    SUBLANG_MAORI_NEW_ZEALAND = 0x01,
    SUBLANG_MAPUDUNGUN_CHILE = 0x01,
    SUBLANG_MARATHI_INDIA = 0x01,
    SUBLANG_MOHAWK_MOHAWK = 0x01,
    SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA = 0x01,
    SUBLANG_MONGOLIAN_PRC = 0x02,
    SUBLANG_NEPALI_INDIA = 0x02,
    SUBLANG_NEPALI_NEPAL = 0x01,
    SUBLANG_NORWEGIAN_BOKMAL = 0x01,
    SUBLANG_NORWEGIAN_NYNORSK = 0x02,
    SUBLANG_OCCITAN_FRANCE = 0x01,
    SUBLANG_ODIA_INDIA = 0x01,
    SUBLANG_ORIYA_INDIA = 0x01,
    SUBLANG_PASHTO_AFGHANISTAN = 0x01,
    SUBLANG_PERSIAN_IRAN = 0x01,
    SUBLANG_POLISH_POLAND = 0x01,
    SUBLANG_PORTUGUESE = 0x02,
    SUBLANG_PORTUGUESE_BRAZILIAN = 0x01,
    SUBLANG_PULAR_SENEGAL = 0x02,
    SUBLANG_PUNJABI_INDIA = 0x01,
    SUBLANG_PUNJABI_PAKISTAN = 0x02,
    SUBLANG_QUECHUA_BOLIVIA = 0x01,
    SUBLANG_QUECHUA_ECUADOR = 0x02,
    SUBLANG_QUECHUA_PERU = 0x03,
    SUBLANG_ROMANIAN_ROMANIA = 0x01,
    SUBLANG_ROMANSH_SWITZERLAND = 0x01,
    SUBLANG_RUSSIAN_RUSSIA = 0x01,
    SUBLANG_SAKHA_RUSSIA = 0x01,
    SUBLANG_SAMI_NORTHERN_NORWAY = 0x01,
    SUBLANG_SAMI_NORTHERN_SWEDEN = 0x02,
    SUBLANG_SAMI_NORTHERN_FINLAND = 0x03,
    SUBLANG_SAMI_LULE_NORWAY = 0x04,
    SUBLANG_SAMI_LULE_SWEDEN = 0x05,
    SUBLANG_SAMI_SOUTHERN_NORWAY = 0x06,
    SUBLANG_SAMI_SOUTHERN_SWEDEN = 0x07,
    SUBLANG_SAMI_SKOLT_FINLAND = 0x08,
    SUBLANG_SAMI_INARI_FINLAND = 0x09,
    SUBLANG_SANSKRIT_INDIA = 0x01,
    SUBLANG_SCOTTISH_GAELIC = 0x01,
    SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN = 0x06,
    SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 0x07,
    SUBLANG_SERBIAN_MONTENEGRO_LATIN = 0x0b,
    SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC = 0x0c,
    SUBLANG_SERBIAN_SERBIA_LATIN = 0x09,
    SUBLANG_SERBIAN_SERBIA_CYRILLIC = 0x0a,
    SUBLANG_SERBIAN_CROATIA = 0x01,
    SUBLANG_SERBIAN_LATIN = 0x02,
    SUBLANG_SERBIAN_CYRILLIC = 0x03,
    SUBLANG_SINDHI_INDIA = 0x01,
    SUBLANG_SINDHI_PAKISTAN = 0x02,
    SUBLANG_SINDHI_AFGHANISTAN = 0x02,
    SUBLANG_SINHALESE_SRI_LANKA = 0x01,
    SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA = 0x01,
    SUBLANG_SLOVAK_SLOVAKIA = 0x01,
    SUBLANG_SLOVENIAN_SLOVENIA = 0x01,
    SUBLANG_SPANISH = 0x01,
    SUBLANG_SPANISH_MEXICAN = 0x02,
    SUBLANG_SPANISH_MODERN = 0x03,
    SUBLANG_SPANISH_GUATEMALA = 0x04,
    SUBLANG_SPANISH_COSTA_RICA = 0x05,
    SUBLANG_SPANISH_PANAMA = 0x06,
    SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 0x07,
    SUBLANG_SPANISH_VENEZUELA = 0x08,
    SUBLANG_SPANISH_COLOMBIA = 0x09,
    SUBLANG_SPANISH_PERU = 0x0a,
    SUBLANG_SPANISH_ARGENTINA = 0x0b,
    SUBLANG_SPANISH_ECUADOR = 0x0c,
    SUBLANG_SPANISH_CHILE = 0x0d,
    SUBLANG_SPANISH_URUGUAY = 0x0e,
    SUBLANG_SPANISH_PARAGUAY = 0x0f,
    SUBLANG_SPANISH_BOLIVIA = 0x10,
    SUBLANG_SPANISH_EL_SALVADOR = 0x11,
    SUBLANG_SPANISH_HONDURAS = 0x12,
    SUBLANG_SPANISH_NICARAGUA = 0x13,
    SUBLANG_SPANISH_PUERTO_RICO = 0x14,
    SUBLANG_SPANISH_US = 0x15,
    SUBLANG_SWAHILI_KENYA = 0x01,
    SUBLANG_SWEDISH = 0x01,
    SUBLANG_SWEDISH_FINLAND = 0x02,
    SUBLANG_SYRIAC_SYRIA = 0x01,
    SUBLANG_TAJIK_TAJIKISTAN = 0x01,
    SUBLANG_TAMAZIGHT_ALGERIA_LATIN = 0x02,
    SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH = 0x04,
    SUBLANG_TAMIL_INDIA = 0x01,
    SUBLANG_TAMIL_SRI_LANKA = 0x02,
    SUBLANG_TATAR_RUSSIA = 0x01,
    SUBLANG_TELUGU_INDIA = 0x01,
    SUBLANG_THAI_THAILAND = 0x01,
    SUBLANG_TIBETAN_PRC = 0x01,
    SUBLANG_TIGRIGNA_ERITREA = 0x02,
    SUBLANG_TIGRINYA_ERITREA = 0x02,
    SUBLANG_TIGRINYA_ETHIOPIA = 0x01,
    SUBLANG_TSWANA_BOTSWANA = 0x02,
    SUBLANG_TSWANA_SOUTH_AFRICA = 0x01,
    SUBLANG_TURKISH_TURKEY = 0x01,
    SUBLANG_TURKMEN_TURKMENISTAN = 0x01,
    SUBLANG_UIGHUR_PRC = 0x01,
    SUBLANG_UKRAINIAN_UKRAINE = 0x01,
    SUBLANG_UPPER_SORBIAN_GERMANY = 0x01,
    SUBLANG_URDU_PAKISTAN = 0x01,
    SUBLANG_URDU_INDIA = 0x02,
    SUBLANG_UZBEK_LATIN = 0x01,
    SUBLANG_UZBEK_CYRILLIC = 0x02,
    SUBLANG_VALENCIAN_VALENCIA = 0x02,
    SUBLANG_VIETNAMESE_VIETNAM = 0x01,
    SUBLANG_WELSH_UNITED_KINGDOM = 0x01,
    SUBLANG_WOLOF_SENEGAL = 0x01,
    SUBLANG_XHOSA_SOUTH_AFRICA = 0x01,
    SUBLANG_YAKUT_RUSSIA = 0x01,
    SUBLANG_YI_PRC = 0x01,
    SUBLANG_YORUBA_NIGERIA = 0x01,
    SUBLANG_ZULU_SOUTH_AFRICA = 0x01,
}
